19.6 Die Klasse »ErrorProvider«  
Stellen Sie sich vor, Sie hätten in einem Formular eine Textbox, in die der Anwender zur Laufzeit Integerzahlen eintragen muss. Da Sie im Programmcode auch eine Fehleingabe berücksichtigen müssen, könnten Sie mit dem folgenden Code darauf reagieren:
| Private Sub textBox1_Validating(...) Handles textBox1.Validating
|
| Try
|
| Dim x As Integer = textBox1.Text.Trim()
|
| ...
|
| Catch
|
| MessageBox.Show("Das ist keine Integerzahl")
|
| ...
|
| End Try
|
| End Sub
|
Eine Alternative zu den benachrichtigenden Meldungsfenstern wird von der .NET-Bibliothek mit dem Steuerelement ErrorProvider bereitgestellt. Sehen wir uns das in der folgenden Abbildung an.
 Hier klicken, um das Bild zu Vergrößern
Abbildung 19.7 Die Anzeige des »ErrorProvider«-Objekts
Neben dem Steuerelement wird ein Symbol mit einem weißen Ausrufezeichen auf rotem Grund angezeigt, das den Anwender diskret auf die Fehleingabe hinweist. Das Symbol blinkt zunächst und wird nach einer kurzen Zeit kontinuierlich angezeigt. Fährt man mit dem Mauszeiger auf das Symbol, wird in einem QuickInfo-Text eine Fehlerbeschreibung angezeigt.
Die Anzeige des Symbols zur Laufzeit erhalten Sie durch Aufruf der Methode SetError.
| Public Sub SetError(Control, String)
|
Im ersten Parameter geben Sie das Steuerelement an, neben dem das Symbol erscheinen soll, dem zweiten Parameter übergeben Sie die anzuzeigende Zeichenfolge. Das Symbol wird nur dann angezeigt, wenn der String-Parameter nicht leer ist.
Da das ErrorProvider-Objekt dynamisch an ein anderes Steuerelement gebunden wird, reicht eine Instanz pro Formular völlig aus. Sie können das Symbol sogar gleichzeitig neben mehreren verschiedenen Steuerelementen anzeigen lassen. Wollen Sie das Symbol wieder entfernen, übergeben Sie einfach eine leere Zeichenfolge.
Drei Eigenschaften des ErrorProvider-Objekts sollten wir uns ansehen. Da wäre zunächst die Eigenschaft Icon, mit der Sie, abweichend vom Standard, ein anderes Symbol festlegen können. Mit BlinkStyle und BlinkRate können wir das Blinkverhalten beeinflussen.
| Public Property BlinkRate As Integer
|
Mit BlinkRate wird die Frequenz, mit der das Fehlersymbol blinkt, festgelegt. Der Wert wird in Millisekunden ausgedrückt. Mit der Standardeinstellung von 250 blinkt das Symbol demnach viermal in der Sekunde auf.
Mit BlinkStyle wird der Umstand festgelegt, unter dem das Symbol blinkt.
| Public Property BlinkStyle As ErrorBlinkStyle
|
Sehen wir uns jetzt noch an, welche Konstanten in der Aufzählung ErrorBlinkStyle vordefiniert sind.
Tabelle 19.6 Konstanten der Enumeration »ErrorBlinkStyle«
| Member
|
Beschreibung
|
| AlwaysBlink
|
Blinkt immer, wenn das Fehlersymbol erstmals angezeigt wird oder wenn eine Zeichenfolge zur Fehlerbeschreibung für das Steuerelement festgelegt und das Fehlersymbol bereits angezeigt wird.
|
| BlinkIfDifferentError
|
Blinkt, wenn das Symbol bereits angezeigt und eine neue Fehlerzeichenfolge für das Steuerelement festgelegt wird.
|
| NeverBlink
|
Das Fehlersymbol blinkt nie.
|
Am Anfang dieses Abschnitts haben Sie ein Codefragment gesehen, mit dem der Benutzer zu einer numerischen Eingabe in einer Textbox gezwungen worden ist. Über eine unzulässige Eingabe informierte ein Meldungsfenster. Dieses soll nun durch ein ErrorProvider-Objekt ersetzt werden. Der Code dazu sieht dann wie folgt aus:
| Private Sub TextBox1_Validating(...) Handles TextBox1.Validating
|
| Try
|
| Dim x As Integer = TextBox1.Text.Trim()
|
| ErrorProvider1.SetError(TextBox1, "")
|
| Catch
|
| ErrorProvider1.SetError(TextBox1, "Das ist keine Integerzahl")
|
| End Try
|
| End Sub
|
|